home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / graphic / pbmpl91d.zip / PBMPLUS / PATCH / MAKEFILE.PGM < prev    next >
Text File  |  1993-01-08  |  4KB  |  149 lines

  1. .SUFFIXES:    .out .a .o .c
  2. # Makefile for pgm tools.
  3. #
  4. # Copyright (C) 1989, 1991 by Jef Poskanzer.
  5. #
  6. # Permission to use, copy, modify, and distribute this software and its
  7. # documentation for any purpose and without fee is hereby granted, provided
  8. # that the above copyright notice appear in all copies and that both that
  9. # copyright notice and this permission notice appear in supporting
  10. # documentation.  This software is provided "as is" without express or
  11. # implied warranty.
  12.  
  13. # Default values, usually overridden by top-level Makefile.
  14. #CC =        cc
  15. CC =        gcc -ansi -pedantic -fcombine-regs -fpcc-struct-return
  16. #CFLAGS =    -O
  17. CFLAGS =    -g
  18. #CFLAGS =    -g -O
  19. #LDFLAGS =    -s
  20. LDFLAGS =    
  21. INSTALLBINARIES =    /usr/new/pbm
  22. INSTALLMANUALS1 =    /usr/man/man1
  23. SUFFIXMANUALS1 =    1
  24. INSTALLMANUALS3 =    /usr/man/man3
  25. SUFFIXMANUALS3 =    3
  26. INSTALLMANUALS5 =    /usr/man/man5
  27. SUFFIXMANUALS5 =    5
  28. MANCP =            cp
  29.  
  30. PBMDIR =    ../pbm
  31. INCLUDEPBM =    -I$(PBMDIR)
  32. LIBPBM =    $(PBMDIR)/libpbm.a
  33. DEFPBM =    $(PBMDIR)/pbm.h ../pbmplus.h
  34. DEFLIBPBM =    $(PBMDIR)/libpbm.h
  35.  
  36. INCLUDE =    -I.. $(INCLUDEPBM)
  37. ALLCFLAGS =    $(CFLAGS) $(INCLUDE)
  38. LIBPGM =    libpgm.a
  39.  
  40. PORTBINARIES =    fitstopgm fstopgm hipstopgm lispmtopgm pgmbentley \
  41.         pgmenhance pgmhist pgmnorm pgmoil pgmramp \
  42.         pgmtofits pgmtofs pgmtolispm pgmtopbm \
  43.         psidtopgm rawtopgm
  44. MATHBINARIES =    pgmcrater pgmedge pgmtexture
  45. BINARIES =    $(PORTBINARIES) $(MATHBINARIES)
  46.  
  47. OBJECTS =    fitstopgm.o fstopgm.o hipstopgm.o lispmtopgm.o pgmbentley.o \
  48.         pgmenhance.o pgmhist.o pgmnorm.o pgmoil.o pgmramp.o \
  49.         pgmtofits.o pgmtofs.o pgmtolispm.o pgmtopbm.o \
  50.         psidtopgm.o rawtopgm.o pgmcrater.o pgmedge.o pgmtexture.o
  51.  
  52. MANUALS1 =    $(BINARIES)
  53. MANUALS3 =    libpgm
  54. MANUALS5 =    pgm
  55.  
  56.  
  57. #all:        binaries
  58. all:        merge
  59. #install:    install.bin
  60. install:    install.merge
  61.  
  62.  
  63. binaries:    $(BINARIES)
  64.  
  65. install.bin:    binaries
  66.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  67.     cp $(BINARIES) $(INSTALLBINARIES)
  68.  
  69.  
  70. merge:        pgmmerge
  71. pgmmerge:    pgmmerge.c $(OBJECTS) $(LIBPGM) $(LIBPBM)
  72.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(OBJECTS) -lm $(LIBPGM) $(LIBPBM)
  73.     -aout2exe $@
  74.  
  75. install.merge:    install.pgmmerge
  76. install.pgmmerge:    pgmmerge
  77.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  78.     cp pgmmerge $(INSTALLBINARIES)
  79.     cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln pgmmerge $$i ; done
  80.     rm $(INSTALLBINARIES)/pgmmerge
  81.  
  82.  
  83. install.man:
  84.     for i in $(MANUALS1) ; do \
  85.         rm -f $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  86.         $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  87.     done
  88.     for i in $(MANUALS3) ; do \
  89.         rm -f $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  90.         $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  91.     done
  92.     for i in $(MANUALS5) ; do \
  93.         rm -f $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  94.         $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  95.     done
  96.  
  97.  
  98. # Rule for plain programs.
  99. $(PORTBINARIES):    pgm.h $(DEFPBM) $(LIBPGM) $(LIBPBM)
  100.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(LIBPGM) $(LIBPBM)
  101.     -aout2exe $@
  102.  
  103. # Rule for math-dependent programs.
  104. $(MATHBINARIES):    pgm.h $(DEFPBM) $(LIBPGM) $(LIBPBM)
  105.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c -lm $(LIBPGM) $(LIBPBM)
  106.     -aout2exe $@
  107.  
  108. # Rule for objects.
  109. $(OBJECTS):    pgm.h $(DEFPBM)
  110.     $(CC) $(ALLCFLAGS) -Dmain=$*_main -c $*.c
  111.  
  112. # And libraries.
  113. $(LIBPBM):
  114.     cd $(PBMDIR) ; make lib
  115. lib:        $(LIBPGM)
  116. $(LIBPGM):    libpgm1.o libpgm2.o
  117.     -rm $(LIBPGM)
  118.     ar rc $(LIBPGM) libpgm1.o libpgm2.o
  119.     -ranlib $(LIBPGM)
  120.  
  121. libpgm1.o:    pgm.h $(DEFPBM) libpgm.h libpgm1.c
  122.     $(CC) $(ALLCFLAGS) -c libpgm1.c
  123. libpgm2.o:    pgm.h $(DEFPBM) libpgm.h libpgm2.c $(DEFLIBPBM)
  124.     $(CC) $(ALLCFLAGS) -c libpgm2.c
  125.  
  126. # Other dependencies.
  127. fitstopgm fitstopgm.o:        fitstopgm.c
  128. fstopgm fstopgm.o:        fstopgm.c
  129. hipstopgm hipstopgm.o:        hipstopgm.c
  130. lispmtopgm lispmtopgm.o:    lispmtopgm.c
  131. pgmbentley pgmbentley.o:    pgmbentley.c
  132. pgmcrater pgmcrater.o:        pgmcrater.c
  133. pgmedge pgmedge.o:        pgmedge.c
  134. pgmenhance pgmenhance.o:    pgmenhance.c
  135. pgmhist pgmhist.o:        pgmhist.c
  136. pgmnorm pgmnorm.o:        pgmnorm.c
  137. pgmoil pgmoil.o:        pgmoil.c
  138. pgmramp pgmramp.o:        pgmramp.c
  139. pgmtexture pgmtexture.o:    pgmtexture.c
  140. pgmtopbm pgmtopbm.o:        pgmtopbm.c dithers.h $(DEFPBM)
  141. pgmtofits pgmtofits.o:        pgmtofits.c
  142. pgmtofs pgmtofs.o:        pgmtofs.c
  143. pgmtolispm pgmtolispm.o:    pgmtolispm.c
  144. psidtopgm psidtopgm.o:        psidtopgm.c
  145. rawtopgm rawtopgm.o:        rawtopgm.c
  146.  
  147. clean:
  148.     -rm -f *.o *.a *.cat core $(BINARIES) pgmmerge *.exe
  149.